<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>加载中动画</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body,
        html {
            margin: 10px auto;
            text-align: center;
            background: #1c1c1d;
        }

        * {
            color: #666;
        }

        span {
            display: inline-block;
            height: 15px;
            width: 15px;
            background: #2fac9b;
            border-radius: 0px;
        }

        .border-radius {
            border-radius: 500px;
        }

        *[id*="loader-"] {
            margin-bottom: 30px;
        }

        #loader-1 span:nth-child(1) {
            border-radius: 500px;
            -webkit-animation: scale 1s 0.1s infinite cubic-bezier(0.6, -0.28, 0.735, 0.045);
            animation: scale 1s 0.1s infinite cubic-bezier(0.6, -0.28, 0.735, 0.045);
        }

        #loader-1 span:nth-child(2) {
            border-radius: 500px;
            -webkit-animation: scale 1s 0.2s infinite cubic-bezier(0.6, -0.28, 0.735, 0.045);
            animation: scale 1s 0.2s infinite cubic-bezier(0.6, -0.28, 0.735, 0.045);
        }

        #loader-1 span:nth-child(3) {
            border-radius: 500px;
            -webkit-animation: scale 1s 0.3s infinite cubic-bezier(0.6, -0.28, 0.735, 0.045);
            animation: scale 1s 0.3s infinite cubic-bezier(0.6, -0.28, 0.735, 0.045);
        }

        #loader-1 span:nth-child(4) {
            border-radius: 500px;
            -webkit-animation: scale 1s 0.4s infinite cubic-bezier(0.6, -0.28, 0.735, 0.045);
            animation: scale 1s 0.4s infinite cubic-bezier(0.6, -0.28, 0.735, 0.045);
        }

        #loader-1 span:nth-child(5) {
            border-radius: 500px;
            -webkit-animation: scale 1s 0.5s infinite cubic-bezier(0.6, -0.28, 0.735, 0.045);
            animation: scale 1s 0.5s infinite cubic-bezier(0.6, -0.28, 0.735, 0.045);
        }

        #loader-2 span:nth-child(1) {
            -webkit-animation: rotateY 4s 0.3s infinite cubic-bezier(0.65, 0.03, 0.735, 0.045);
            animation: rotateY 4s 0.3s infinite cubic-bezier(0.65, 0.03, 0.735, 0.045);
        }

        #loader-2 span:nth-child(2) {
            -webkit-animation: rotateY 4s 0.6s infinite cubic-bezier(0.65, 0.03, 0.735, 0.045);
            animation: rotateY 4s 0.6s infinite cubic-bezier(0.65, 0.03, 0.735, 0.045);
        }

        #loader-2 span:nth-child(3) {
            -webkit-animation: rotateY 4s 0.9s infinite cubic-bezier(0.65, 0.03, 0.735, 0.045);
            animation: rotateY 4s 0.9s infinite cubic-bezier(0.65, 0.03, 0.735, 0.045);
        }

        #loader-2 span:nth-child(4) {
            -webkit-animation: rotateY 4s 1.2s infinite cubic-bezier(0.65, 0.03, 0.735, 0.045);
            animation: rotateY 4s 1.2s infinite cubic-bezier(0.65, 0.03, 0.735, 0.045);
        }

        #loader-2 span:nth-child(5) {
            -webkit-animation: rotateY 4s 1.5s infinite cubic-bezier(0.65, 0.03, 0.735, 0.045);
            animation: rotateY 4s 1.5s infinite cubic-bezier(0.65, 0.03, 0.735, 0.045);
        }

        #loader-3 span:nth-child(1) {
            -webkit-animation: rotateX 2s 0.1s infinite cubic-bezier(0.65, 0.03, 0.735, 0.045);
            animation: rotateX 2s 0.1s infinite cubic-bezier(0.65, 0.03, 0.735, 0.045);
        }

        #loader-3 span:nth-child(2) {
            -webkit-animation: rotateX 2s 0.2s infinite cubic-bezier(0.65, 0.03, 0.735, 0.045);
            animation: rotateX 2s 0.2s infinite cubic-bezier(0.65, 0.03, 0.735, 0.045);
        }

        #loader-3 span:nth-child(3) {
            -webkit-animation: rotateX 2s 0.3s infinite cubic-bezier(0.65, 0.03, 0.735, 0.045);
            animation: rotateX 2s 0.3s infinite cubic-bezier(0.65, 0.03, 0.735, 0.045);
        }

        #loader-3 span:nth-child(4) {
            -webkit-animation: rotateX 2s 0.4s infinite cubic-bezier(0.65, 0.03, 0.735, 0.045);
            animation: rotateX 2s 0.4s infinite cubic-bezier(0.65, 0.03, 0.735, 0.045);
        }

        #loader-3 span:nth-child(5) {
            -webkit-animation: rotateX 2s 0.5s infinite cubic-bezier(0.65, 0.03, 0.735, 0.045);
            animation: rotateX 2s 0.5s infinite cubic-bezier(0.65, 0.03, 0.735, 0.045);
        }

        #loader-4 span:nth-child(1) {
            border-radius: 500px;
            -webkit-animation: push 1s 0.05s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: push 1s 0.05s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
        }

        #loader-4 span:nth-child(2) {
            border-radius: 500px;
            -webkit-animation: push 1s 0.1s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: push 1s 0.1s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
        }

        #loader-4 span:nth-child(3) {
            border-radius: 500px;
            -webkit-animation: push 1s 0.15s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: push 1s 0.15s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
        }

        #loader-4 span:nth-child(4) {
            border-radius: 500px;
            -webkit-animation: push 1s 0.2s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: push 1s 0.2s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
        }

        #loader-4 span:nth-child(5) {
            border-radius: 500px;
            -webkit-animation: push 1s 0.25s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: push 1s 0.25s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
        }

        #loader-5 span:nth-child(1) {
            border-radius: 500px;
            transform-origin: 50% 0%;
            -webkit-animation: rotateZ 1s 0.05s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: rotateZ 1s 0.05s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 2.5px;
            height: 30px;
            margin: 0 2.5px;
        }

        #loader-5 span:nth-child(2) {
            border-radius: 500px;
            transform-origin: 50% 0%;
            -webkit-animation: rotateZ 1s 0.1s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: rotateZ 1s 0.1s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 2.5px;
            height: 30px;
            margin: 0 2.5px;
        }

        #loader-5 span:nth-child(3) {
            border-radius: 500px;
            transform-origin: 50% 0%;
            -webkit-animation: rotateZ 1s 0.15s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: rotateZ 1s 0.15s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 2.5px;
            height: 30px;
            margin: 0 2.5px;
        }

        #loader-5 span:nth-child(4) {
            border-radius: 500px;
            transform-origin: 50% 0%;
            -webkit-animation: rotateZ 1s 0.2s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: rotateZ 1s 0.2s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 2.5px;
            height: 30px;
            margin: 0 2.5px;
        }

        #loader-5 span:nth-child(5) {
            border-radius: 500px;
            transform-origin: 50% 0%;
            -webkit-animation: rotateZ 1s 0.25s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: rotateZ 1s 0.25s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 2.5px;
            height: 30px;
            margin: 0 2.5px;
        }

        #loader-5 span:nth-child(6) {
            border-radius: 500px;
            transform-origin: 50% 0%;
            -webkit-animation: rotateZ 1s 0.3s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: rotateZ 1s 0.3s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 2.5px;
            height: 30px;
            margin: 0 2.5px;
        }

        #loader-5 span:nth-child(7) {
            border-radius: 500px;
            transform-origin: 50% 0%;
            -webkit-animation: rotateZ 1s 0.35s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: rotateZ 1s 0.35s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 2.5px;
            height: 30px;
            margin: 0 2.5px;
        }

        #loader-5 span:nth-child(8) {
            border-radius: 500px;
            transform-origin: 50% 0%;
            -webkit-animation: rotateZ 1s 0.4s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: rotateZ 1s 0.4s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 2.5px;
            height: 30px;
            margin: 0 2.5px;
        }

        #loader-5 span:nth-child(9) {
            border-radius: 500px;
            transform-origin: 50% 0%;
            -webkit-animation: rotateZ 1s 0.45s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: rotateZ 1s 0.45s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 2.5px;
            height: 30px;
            margin: 0 2.5px;
        }

        #loader-5 span:nth-child(10) {
            border-radius: 500px;
            transform-origin: 50% 0%;
            -webkit-animation: rotateZ 1s 0.5s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: rotateZ 1s 0.5s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 2.5px;
            height: 30px;
            margin: 0 2.5px;
        }

        #loader-6 span:nth-child(1) {
            transform-origin: 0 50%;
            /* transform-perspective: 100px; */
            -webkit-animation: cuve 1s 0.5s infinite;
            animation: cuve 1s 0.5s infinite;
        }

        #loader-6 span:nth-child(2) {
            transform-origin: 0 50%;
            /* transform-perspective: 100px; */
            -webkit-animation: cuve 1s 1s infinite;
            animation: cuve 1s 1s infinite;
        }

        #loader-6 span:nth-child(3) {
            transform-origin: 0 50%;
            /* transform-perspective: 100px; */
            -webkit-animation: cuve 1s 1.5s infinite;
            animation: cuve 1s 1.5s infinite;
        }

        #loader-6 span:nth-child(4) {
            transform-origin: 0 50%;
            /* transform-perspective: 100px; */
            -webkit-animation: cuve 1s 2s infinite;
            animation: cuve 1s 2s infinite;
        }

        #loader-6 span:nth-child(5) {
            transform-origin: 0 50%;
            /* transform-perspective: 100px; */
            -webkit-animation: cuve 1s 2.5s infinite;
            animation: cuve 1s 2.5s infinite;
        }

        #loader-7 span:nth-child(1) {
            -webkit-animation: temp 1s 0.05s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: temp 1s 0.05s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 7.5px;
            height: 7.5px;
            margin: 0 2px;
        }

        #loader-7 span:nth-child(2) {
            -webkit-animation: temp 1s 0.1s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: temp 1s 0.1s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 7.5px;
            height: 7.5px;
            margin: 0 2px;
        }

        #loader-7 span:nth-child(3) {
            -webkit-animation: temp 1s 0.15s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: temp 1s 0.15s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 7.5px;
            height: 7.5px;
            margin: 0 2px;
        }

        #loader-7 span:nth-child(4) {
            -webkit-animation: temp 1s 0.2s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: temp 1s 0.2s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 7.5px;
            height: 7.5px;
            margin: 0 2px;
        }

        #loader-7 span:nth-child(5) {
            -webkit-animation: temp 1s 0.25s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: temp 1s 0.25s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 7.5px;
            height: 7.5px;
            margin: 0 2px;
        }

        #loader-7 span:nth-child(6) {
            -webkit-animation: temp 1s 0.3s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: temp 1s 0.3s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 7.5px;
            height: 7.5px;
            margin: 0 2px;
        }

        #loader-7 span:nth-child(7) {
            -webkit-animation: temp 1s 0.35s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: temp 1s 0.35s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 7.5px;
            height: 7.5px;
            margin: 0 2px;
        }

        #loader-7 span:nth-child(8) {
            -webkit-animation: temp 1s 0.4s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: temp 1s 0.4s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 7.5px;
            height: 7.5px;
            margin: 0 2px;
        }

        #loader-7 span:nth-child(9) {
            -webkit-animation: temp 1s 0.45s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: temp 1s 0.45s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 7.5px;
            height: 7.5px;
            margin: 0 2px;
        }

        #loader-7 span:nth-child(10) {
            -webkit-animation: temp 1s 0.5s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: temp 1s 0.5s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 7.5px;
            height: 7.5px;
            margin: 0 2px;
        }

        #loader-7 span:nth-child(11) {
            -webkit-animation: temp 1s 0.55s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: temp 1s 0.55s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 7.5px;
            height: 7.5px;
            margin: 0 2px;
        }

        #loader-7 span:nth-child(12) {
            -webkit-animation: temp 1s 0.6s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: temp 1s 0.6s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 7.5px;
            height: 7.5px;
            margin: 0 2px;
        }

        #loader-7 span:nth-child(13) {
            -webkit-animation: temp 1s 0.65s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: temp 1s 0.65s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 7.5px;
            height: 7.5px;
            margin: 0 2px;
        }

        #loader-7 span:nth-child(14) {
            -webkit-animation: temp 1s 0.7s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: temp 1s 0.7s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 7.5px;
            height: 7.5px;
            margin: 0 2px;
        }

        #loader-7 span:nth-child(15) {
            -webkit-animation: temp 1s 0.75s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: temp 1s 0.75s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 7.5px;
            height: 7.5px;
            margin: 0 2px;
        }

        #loader-7 span:nth-child(16) {
            -webkit-animation: temp 1s 0.8s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: temp 1s 0.8s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 7.5px;
            height: 7.5px;
            margin: 0 2px;
        }

        #loader-7 span:nth-child(17) {
            -webkit-animation: temp 1s 0.85s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: temp 1s 0.85s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 7.5px;
            height: 7.5px;
            margin: 0 2px;
        }

        #loader-7 span:nth-child(18) {
            -webkit-animation: temp 1s 0.9s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: temp 1s 0.9s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 7.5px;
            height: 7.5px;
            margin: 0 2px;
        }

        #loader-7 span:nth-child(19) {
            -webkit-animation: temp 1s 0.95s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: temp 1s 0.95s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 7.5px;
            height: 7.5px;
            margin: 0 2px;
        }

        #loader-7 span:nth-child(20) {
            -webkit-animation: temp 1s 1s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            animation: temp 1s 1s infinite cubic-bezier(0.005, 0.56, 0.58, 1.59);
            width: 7.5px;
            height: 7.5px;
            margin: 0 2px;
        }

        @-webkit-keyframes scale {
            0% {
                transform: scale(0);
            }

            25% {
                transform: scale(0.9, 0.9);
                background: #93e1d7;
            }

            50% {
                transform: scale(1, 1);
                margin: 0 3px;
                background: #2fac9b;
            }

            100% {
                transform: scale(0);
            }
        }

        @keyframes scale {
            0% {
                transform: scale(0);
            }

            25% {
                transform: scale(0.9, 0.9);
                background: #93e1d7;
            }

            50% {
                transform: scale(1, 1);
                margin: 0 3px;
                background: #2fac9b;
            }

            100% {
                transform: scale(0);
            }
        }

        @-webkit-keyframes rotateY {
            0% {
                transform: rotateY(0deg);
            }

            50% {
                transform: rotateY(90deg);
                background: #93e1d7;
            }

            100% {
                transform: rotateY(0deg);
            }
        }

        @keyframes rotateY {
            0% {
                transform: rotateY(0deg);
            }

            50% {
                transform: rotateY(90deg);
                background: #93e1d7;
            }

            100% {
                transform: rotateY(0deg);
            }
        }

        @-webkit-keyframes rotateX {
            0% {
                transform: rotateX(0deg);
            }

            50% {
                transform: rotateX(90deg) scale(0.5, 0.5);
                background: #93e1d7;
            }

            100% {
                transform: rotateX(0deg);
            }
        }

        @keyframes rotateX {
            0% {
                transform: rotateX(0deg);
            }

            50% {
                transform: rotateX(90deg) scale(0.5, 0.5);
                background: #93e1d7;
            }

            100% {
                transform: rotateX(0deg);
            }
        }

        @-webkit-keyframes push {
            0% {
                transform: translateX(0px) scale(0.9, 0.6);
            }

            50% {
                transform: translateY(-20px) scale(0.7, 1.1);
                background: #6bd6c8;
            }

            100% {
                transform: translateX(0px) scale(0.9, 0.6);
            }
        }

        @keyframes push {
            0% {
                transform: translateX(0px) scale(0.9, 0.6);
            }

            50% {
                transform: translateY(-20px) scale(0.7, 1.1);
                background: #6bd6c8;
            }

            100% {
                transform: translateX(0px) scale(0.9, 0.6);
            }
        }

        @-webkit-keyframes rotateZ {
            0% {
                transform: rotateZ(-20deg);
            }

            50% {
                transform: rotateZ(20deg) scaleY(1.2);
                background: #6bd6c8;
            }

            100% {
                transform: rotateZ(-20deg);
            }
        }

        @keyframes rotateZ {
            0% {
                transform: rotateZ(-20deg);
            }

            50% {
                transform: rotateZ(20deg) scaleY(1.2);
                background: #6bd6c8;
            }

            100% {
                transform: rotateZ(-20deg);
            }
        }

        @-webkit-keyframes cuve {
            0% {
                transform: rotateY(-90deg) perspective(50px);
                background: #195c53;
            }

            50% {
                transform: rotateY(0deg);
                background: #6bd6c8;
            }

            100% {
                transform: rotateY(90deg) perspective(50px);
                transform-origin: 100% 50%;
                background: #195c53;
            }
        }

        @keyframes cuve {
            0% {
                transform: rotateY(-90deg) perspective(50px);
                background: #195c53;
            }

            50% {
                transform: rotateY(0deg);
                background: #6bd6c8;
            }

            100% {
                transform: rotateY(90deg) perspective(50px);
                transform-origin: 100% 50%;
                background: #195c53;
            }
        }

        @-webkit-keyframes temp {
            50% {
                transform: scale(1, 5);
                background: #195c53;
            }
        }

        @keyframes temp {
            50% {
                transform: scale(1, 5);
                background: #195c53;
            }
        }
    </style>
</head>

<body>
    <div id="loader-1"><span></span><span></span><span></span><span></span><span></span></div>
    <div id="loader-2"><span></span><span></span><span></span><span></span><span></span></div>
    <div id="loader-3"><span></span><span></span><span></span><span></span><span></span></div>
    <div id="loader-4"><span></span><span></span><span></span><span></span><span></span></div>
    <div id="loader-5">
        <span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span>
    </div>
    <div id="loader-6"><span></span><span></span><span></span><span></span><span></span></div>
    <div id="loader-7">
        <span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span>
    </div>
    <br /><br />
    <br />
    <p>Thanks all for <strong>400 +</strong> hearts and <strong>50k</strong> visits!!!!</p>
    <br />
    <p>
        By <a href="https://twitter.com/JesGraPa" target="_blank">@JesGraPa</a> - <a href="https://codepen.io/JesGraPa/"
            target="_blank">More Pens</a>
    </p>
    <br /><br />
</body>

</html>